package cn.com.surker.production.dao;

import cn.com.surker.production.entity.InvoiceExamine;
import cn.com.surker.production.entity.vo.InvoiceExamineVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 生产发货单审核记录表 Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2025-02-12
 */
public interface InvoiceExamineDao extends BaseMapper<InvoiceExamine> {


	/**
	 * 新增数据
	 *
	 * @param dbCode   数据库
	 * @param examine 审核数据
	 * @return 主键id
	 */
	Long addExamine(String dbCode, InvoiceExamine examine);

	/**
	 * 查询发货单下的审核记录
	 *
	 * @param dbCode
	 * @param invoiceId
	 * @return
	 */
	List<InvoiceExamineVo> findList(String dbCode, Long invoiceId, Integer examineType, Integer examineStatus);

	/**
	 * 作废审核记录
	 *
	 * @param dbCode
	 * @param examineId
	 * @param remark
	 */
	Integer scrap(String dbCode, Long examineId, String remark);

	/**
	 * 批量插入
	 *
	 * @param dbCode
	 * @param examines
	 */
	void batchExamine(String dbCode, List<InvoiceExamine> examines);

	/**
	 * 查询任务单下发货单下已审核,未审核的发货单数量
	 *
	 * @param dbCode
	 * @param startTime
	 * @param endTime
	 * @param indentId
	 * @return
	 */
	Map<String, Object> selectExamineNum(String dbCode, String startTime, String endTime, Long indentId);
}
